package tests;

import java.awt.Point;

import aplicacion.modelo.BarreraJaulaFantasma;
import aplicacion.modelo.Celda;
import aplicacion.modelo.CeldasEnjauladas;
import aplicacion.modelo.Juego;
import aplicacion.modelo.Puntaje;
import junit.framework.Assert;
import junit.framework.TestCase;

public class BarreraJaulaFantasmaTest extends TestCase {
	
	protected void setUp() throws Exception {
		super.setUp();
		Juego.reinicializarJuego();
	}
	
	public void testEstaBloqueada() {
		BarreraJaulaFantasma barreraJaulaFantasma=new BarreraJaulaFantasma(new Point(1,8),new CeldasEnjauladas());
		Assert.assertTrue(!barreraJaulaFantasma.estaBloqueada());
	}

	public void testFruta() {
		Puntaje puntaje=new Puntaje();
		Point posicion=new Point(1,8);
		BarreraJaulaFantasma barreraJaulaFantasma=new BarreraJaulaFantasma(posicion,new CeldasEnjauladas());
		Assert.assertEquals(posicion,barreraJaulaFantasma.getPosicion());
		Assert.assertEquals(puntaje.getPuntaje(),0);
	}
	
	public void testRecorrerDesdeDentroDeLaJaula(){
		Point posicion=new Point(0,0);
		CeldasEnjauladas enjauladas=new CeldasEnjauladas();
		Celda celda=new Celda(new Point(5,5));
		enjauladas.add(celda);
		BarreraJaulaFantasma barreraJaulaFantasma=new BarreraJaulaFantasma(posicion,enjauladas);
		int puntos=barreraJaulaFantasma.getPuntaje();
		Assert.assertEquals(puntos,0);
		Assert.assertEquals(posicion,barreraJaulaFantasma.recorrer(celda));
	}

	public void testRecorrerDesdeFueraDeLaJaula(){
		Point posicion=new Point(1,8);
		CeldasEnjauladas enjauladas=new CeldasEnjauladas();
		Celda celdaAnterior=new Celda(new Point(5,5));
		BarreraJaulaFantasma barreraJaulaFantasma=new BarreraJaulaFantasma(posicion,enjauladas);
		Assert.assertEquals(barreraJaulaFantasma.recorrer(celdaAnterior),null);
	}

}
